/**
 * 工具函数
 */

/* 手机号验证 */
function isPhone(str) {
    return !/^1[3-9]\d{9}$/.test(str)
}

/* 轻提示 */
function showToast(status, text) {
    /*  console.log(123); */
    //1创建标签
    const div = document.createElement('div')
    //2添加类名
    div.className = 'toast difl jucen alitcen f16 flco'

    //3添加内容
    div.innerHTML = `
    <i class="iconfont icon-${status === 'chenggong' ? 'chenggong' : 'shibai'}"></i>
    <span>${text}</span>
    `

    //4追加到body
    document.body.append(div)
    console.log(div)
    /* console.log(div);  将轻提示写到公共样式里面*/

    //计时器干掉自己
    setTimeout(function () {
        div.remove()
    }, 2000)

}



/* 动态底部导航 */
function showTabs(xuanxiang) {
    /* console.log(1); */
    //1创建标签
    const div = document.createElement("div")



    //2添加类名
    div.className = 'options'



    //3添加内容
    div.innerHTML = `
            <a href="./home.html" class="${xuanxiang === 'home' ? 'lanse' : ""}">
                <i class="iconfont icon-shouye"></i>
                <p>首页</p>
            </a>
            <a  href="./sports.html" class="${xuanxiang === 'sports' ? 'lanse' : ""}">
                <i class="iconfont icon-yundong"></i>
                <p>运动</p>
            </a>
            <a  href="./my.html" class="${xuanxiang === 'my' ? 'lanse' : ""}">
                <i class="iconfont icon-wode"></i>
                <p>我的</p>
            </a>
   
   
   `



    //4追加到body里面
    document.body.append(div)



}

//补0操作
function buning(bu) {
    return bu >= 10 ? bu : `0${bu}`
}

/* 判断用户是否登录
*/
function registers() {
    //获取本地存储中的userId
    let userId = localStorage.getItem("userId")
    console.log(userId);
    //如果没有登录就跳回登录页面
    if (!userId) location.href = "./password.html"
}


//运动顶部导航
function showTop(wolaile) {
    //1创建标签
    const div = document.createElement('div')

    //2添加类名
    div.className = 'optionstop'

    //3添加内容
    div.innerHTML = `
   <a href="./sports.html" class="f20 flg15 colorhei ${wolaile === "sports" ? "lanse" : ""}">
       
       跑步
   </a>
   <a  href="./ride.html" class="f20 flg15 colorhei  ${wolaile === "ride" ? "lanse" : ""}">
      
       骑行
   </a>
   <a  href="./course.html" class="f20 flg1 colorhei  ${wolaile === "course" ? "lanse" : ""}">
      
       课程训练
   </a>


`

    //4追加把
    document.body.append(div)

}
/* showTop() */

/* 格式化时间 */
function theTimTto(adc) {
    /*  console.log(adc); */
    let shi = Math.floor(adc / 60 / 60)
    let fen = Math.floor(adc / 60 % 60)

    let miao = adc % 60
    /*  console.log(shi, fen, miao); */
    return [shi, fen, miao].map(function (res) {
        return buning(res)
    }).join(":")

}


/* 
  根据经纬度计算距离
    startPoint:  第一个点
    curPoint:  第二个点
*/
function calcDistance(startPoint, curPoint) {
    let lat1 = startPoint.lat
    let lng1 = startPoint.lng

    let lat2 = curPoint.lat
    let lng2 = curPoint.lng

    var radLat1 = lat1 * Math.PI / 180.0;
    var radLat2 = lat2 * Math.PI / 180.0;
    var a = radLat1 - radLat2;
    var b = lng1 * Math.PI / 180.0 - lng2 * Math.PI / 180.0;
    var s = 2 * Math.asin(Math.sqrt(Math.pow(Math.sin(a / 2), 2) + Math.cos(radLat1) * Math.cos(radLat2) * Math.pow(Math.sin(b / 2), 2)));
    s = s * 6378.137;
    s = Math.round(s * 10000) / 10000;
    return s.toFixed(2) // 单位千米
}

/* 计算配速函数 
  d： 距离
  s： 时间
*/
function calcPace(d, s) {
    let distance = d
    let spendTime = s / 60
    if (distance > 0 && spendTime > 0) {
        let pace = parseFloat(spendTime / distance)
        let m = Math.floor(pace)
        let s = ((pace - m) * 60).toFixed(0)
        return `${m}'${s}"`
    }
    return "--"
}

/* 计算卡路里 */
function calCalorie(miles) {
    if (miles > 0) {
        let calorie = 60 * miles * 1.036;
        return calorie.toFixed(2)
    }
    return "--"
}


/* 地图添加点 map地图 point经纬度 pic图标*/
function addMarker(amap, point, pic) {  // 创建图标对象   
    const myIcon = new BMap.Icon(pic, new BMap.Size(45, 45), {
        // 指定定位位置。   
        // 当标注显示在地图上时，其所指向的地理位置距离图标左上    
        // 角各偏移10像素和25像素。您可以看到在本例中该位置即是   
        // 图标中央下端的尖角位置。 

        anchor: new BMap.Size(15, 30),
        // 设置图片偏移。

        // 当您需要从一幅较大的图片中截取某部分作为标注图标时，您   
        // 需要指定大图的偏移位置，此做法与css sprites技术类似。   

        imageSize: new BMap.Size(30, 32)   // 设置图片大小    
    });
    // 创建标注对象并添加到地图   
    const marker = new BMap.Marker(point, { icon: myIcon });

    amap.addOverlay(marker);
}

/* 地图添加折线      */
function quxian(amap, previous, next) {
    /* 定义折线对象 */
    const polyline = new BMap.Polyline([
        new BMap.Point(previous.lng, previous.lat),//第一点金纬度
        new BMap.Point(next.lng, next.lat)  //第二点金纬度
    ],
        /* 折线样式 */
        { strokeColor: "blue", strokeWeight: 6, strokeOpacity: 0.5 }
    );
    //将折线对象添加到地图中
    amap.addOverlay(polyline);
}





/* 暴露对象 */
window.utils = {
    /* isPhone等价于isPhone: isPhone */
    isPhone: isPhone,
    showToast: showToast,
    showTabs: showTabs,
    buning: buning,
    registers: registers,
    showTop: showTop,
    theTimTto: theTimTto,
    calcDistance: calcDistance,
    calcPace: calcPace,
    calCalorie: calCalorie,
    addMarker: addMarker,
    quxian: quxian,

}

